package com.service;

import com.entity.Account;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * ClassName: AccountService
 * Description:
 *
 * @author L_Z_R
 * @create 2025/04/16 16:20
 * @version 1.0
 */
public interface AccountService {
    /**
     * 根据用户名和密码查询账号信息
     *
     * @param username 账号名
     * @param pwd      密码
     * @return 返回账号对象
     */
    Account selectAccountByUsername(String username, String pwd);

    /**
     * 根据用户名查询账号,判断是否存在
     *
     * @param username 用户名
     * @return 返回 boolean 值
     */
    Account selectByUsername(String username);

    /**
     * 插入账号(注册)
     *
     * @param account 账号对象
     */

    void insertAccount(Account account);

    /**
     * 根据用户名修改密码
     *
     * @param username 用户名
     * @param newPwd   新密码
     */
    void updatePassword(String username, String newPwd);

    /**
     * 根据账号id修改经验值和积分
     * @param accountId 账号id
     * @param experience 经验值
     * @param integral 积分
     * @param taskId   任务id
     */
    void updateAccountXpById(Integer accountId, Integer experience, Integer integral,Integer taskId);

    /**
     * 获取新用户数量
     * @return 新用户数量
     */
    int getNewAccountCount();

    /**
     * 统计用户数量
     * @return 用户数量
     */
    int getAccountCount();

    /**
     * 根据账号Id修改账号权限类型
     * @param accountId 账号Id
     */
    void updateAccount( Integer accountId, Byte type);

}
